﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using wms_wpf.Dto;
using wms_wpf.InPut;

namespace wms_wpf.Apiservice
{
   public interface IBaseService
    {
        Task<string> Create_Warehouses(InPut_BaseService3 input);//配置库位
        Task<Tuple<List<WarehouseLineDto>, long?, long?>> GetList_WarehouseLine(InPut_BaseService4 input);//获取库位列表
        Task<bool> Update_WarehouseLines(InPut_BaseService5 inPut);//更新库位
        Task<string> Create_Boxs(InPut_BaseService input);//配置箱盒
        Task<Tuple<List<BoxDto>, long?, long?>> GetList_Boxs(InPut_BaseService6 inPut);//获取箱盒
        Task<bool>  Update_Box(InPut_BaseService2 input);//更新箱盒
        Task<string> CreateNeetOutMaterial(InPut_BaseService10 InPut);//手动出库-添加需出料
        Task<BaseDto> DeleteMaterial(InPut_BaseService8 InPut);//取料确认
        Task<BaseDto> GetDeleteMaterial(InPut_BaseService8 InPut);//拿到出库信息  不出
        Task<string> Create_Inlethouse(InPut_BaseService9 input);//添加缓存货架
        Task<List<string>> GetList_InlethouesCode(string Type);//获取缓存货架
        Task<string> UpdateTaskOrderState(InPut_BaseService11 InPut);//更新任务状态
        Task<string> CreateTaskOrder(InPut_BaseService12 InPut);//手动入库
        Task<string> CreateTaskOrderOut(InPut_BaseService13 InPut);//手动出库
        Task<string> DeleteTaskOrder(List<string> TaskOrderCodes);//删除任务
        Task<string> MergeBox(InPut_BaseService14 InPut);//合箱
        Task<bool> CreateMaterialBase(InPut_BaseService7 inPut);//新料入库
        Task<string> CreateLog(string Type, string Note);//生成日志
        Task<string> UpdateNeetQuantity(InPut_BaseService16 InPut);//编辑需求出库数量
        Task<List<View_NeetOutMaterialDto>> GetNeetBoxMaterial(string BoxCode);//获取需要出库物料
        Task<bool> Revoke_MaterialBase(string LPN);//撤销在盒物料
        Task<BaseDto2> GetWarehousequantity();//获取
        Task<List<CusetomOrderDto>> GetListCusetom(InPut_BaseService17 InPut);//获取用户工单
        Task<List<CusetomLineDto>> GetListCusetomLine(Guid guid);//获取用户详情
        Task<bool> CreateTaskNeetOut(InPut_BaseService20 InPut);//分配工单
        Task<bool> DeleteNeetMaterial(string MaterialCode);//删除需出料
        //Task<bool> CreateTaskManyNeetOut(InPut_BaseService20 InPut);//合并工单
        Task<List<NeetOutMaterialsDto>> CreateTaskManyNeetOutNew(InPut_BaseService21 InPut);//合并工单新
        Task<bool> CheckNeetTask();//验证是否有未出料
        Task<bool> DeleteWaste();//删除废料
        Task<bool> UpdateMaterialQuantity(InPut_BaseService19 InPut);//调整库存数量
        Task<bool> GetListOrder();//获取列表
        Task<bool> DeleteOrder(List<Guid> InPut);//删除工单
    }
}
